package es.ugr.beequizz.services.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import es.ugr.beequizz.bean.PreguntaBean;
import es.ugr.beequizz.bean.ValidacionBean;
import es.ugr.beequizz.dao.PreguntaDAO;
import es.ugr.beequizz.model.Pregunta;
import es.ugr.beequizz.services.PreguntaService;

@Service
public class PreguntaServiceImpl implements PreguntaService {
	
	@Autowired
	private PreguntaDAO preguntaDAO;

	public Long incluirPregunta(PreguntaBean bean) {
		return preguntaDAO.incluirPregunta(bean);
	}

	public List<Pregunta> recuperarPreguntas(Long asignaturaId,
			Long dificultadId) {
		return preguntaDAO.recuperarPreguntas(asignaturaId,dificultadId);
	}

	public void suprimirPregunta(Long id) {
		
		 preguntaDAO.suprimirPregunta(id);
		
	}

	@Transactional
	public List<Pregunta> recuperarListaPreguntas(int numPreguntas,
			Long asignaturaId, Long dificultadId) {
	
		return preguntaDAO.recuperarListaPreguntas(numPreguntas,asignaturaId,dificultadId);
	}

	public Pregunta recuperarContenidoPreguntas(Long preguntaId) {
		
		return preguntaDAO.recuperarContenidoPreguntas(preguntaId);
	}

	public List<Long> recuperarListaPreguntasPartida(Long partidaId) {
		
		return preguntaDAO.recuperarListaPreguntasPartida(partidaId);
	}

	public Long recuperarUnaPregunta(Long partidaId, Long asignaturaId, Long dificultadId, Long usuarioId) {
		return preguntaDAO.recuperarUnaPregunta(partidaId, asignaturaId, dificultadId, usuarioId);
	}

	public PreguntaBean recuperarPregunta(Long preguntaId) {
		return preguntaDAO.recuperarPregunta(preguntaId);
	}

	public void modificarPregunta(PreguntaBean pregunta) {
		preguntaDAO.modificarPregunta(pregunta);
	}

	@Transactional
	public void validacionPregunta(List<ValidacionBean> beans) {
		for (ValidacionBean bean : beans) {
			preguntaDAO.validacionPregunta(bean);
		}
	}
}
